#!/usr/bin/env node

const fs = require('fs');
const path = require('path');

// 设置密码文件路径
const passwdPath = path.join('/etc', 'passwd');

// 读取 passwd 文件
fs.readFile(passwdPath, 'utf8', (err, data) => {
  if (err) {
    console.error('读取文件错误:', err);
    return;
  }

  // 分割文件内容为行
  const lines = data.split('\n');
  const headers = ['index', 'user_name', 'user_id', 'group_id', 'home_dir', 'login_shell'];

  // 打印表头
  const divider = headers.map(header => '-'.repeat(header.length)).join('+');
  console.log(`┌${divider}┐`);
  console.log(`│ ${headers.join(' │ ')} │`);
  console.log(`├${divider}┤`);

  // 遍历每行，提取和打印所需信息
  lines.forEach((line, index) => {
    if (line) {
      const parts = line.split(':');
      const userInfo = {
        index: index,
        user_name: parts[0],
        user_id: parts[2],
        group_id: parts[3],
        home_dir: parts[4],
        login_shell: parts[5]
      };

      // 打印用户信息
      console.log(
        `│ ${Object.values(userInfo).join(' │ ')} │`
      );
    }
  });

  // 打印表尾
  console.log(`└${divider}┘`);
});